package com.cloud.haiyan_base.validator.constraint;

import com.cloud.haiyan_utils.StringUtils;
import com.cloud.haiyan_base.global.Constants;
import com.cloud.haiyan_base.validator.annotion.IdValid;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

/**
 * 这里有些冗余了，其实面对控制器的VO对象，应该全为String类型。
 * 作为后端程序员，不应该相信前端传递的任何参数，所以字符串类型也应该被识别。
 */
public class IdValidator implements ConstraintValidator<IdValid, String> {


    @Override
    public void initialize(IdValid constraintAnnotation) {//初始化，在这里没有需要初始化的

    }

    @Override
    public boolean isValid(String value, ConstraintValidatorContext context) {//value就是传入的参数，进行校验
        if (value == null || StringUtils.isBlank(value) || StringUtils.isEmpty(value.trim()) || value.length() != Constants.THIRTY_TWO) {
            return false;
        }
        return true;
    }
}
